网段&网桥

由于对网段,网桥概念的不清晰,学习并查阅了一些资料,记录如下:

  • 物理层,链路层,网络层的简单介绍及递进关系
  • 上述三个层中涉及到的设备和协议的简单介绍

HUB&Repeater,Bridge&Switch

先列举几个问题:

  • 网桥是什么?
  • vmware桥接模式的原理是什么?
  • 网段是什么?
  • 物理网段和逻辑网段的区别?
  • 网关的原理和作用
  • DNS的原理和作用

网桥是什么

focus on 网桥,查询过程引出了几个概念:

  • 中继器(repeater)
  • 集线器(HUB)
  • 冲突域
  • 广播域

最原始的网络,是物理链路层互联,对应OSI的第一层。物理链路层就是物理设备的互联组成的层,主要用来解决:不同介质间信号转换,比如光信号怎么转换为电信号的啊;0和1是怎么在电信号和光信号中表达的啊,等等问题。

具体OSI分层参见附录:OSI分层

在物理层之上就是数据链路层。可以看做是对物理链路层提供的能力(0,1的信号)的封装。比如以太网帧

就规定了 (6 + 6 + 2 + 46~1500 + 4)* 8 bit 这么多的 0 和 1 加起来是一个以太网帧。在数据链路层上的协议就提供了帧格式规定,帧同步,收发顺序的控制。

数据链路层上的数据传输(帧发送)有以下特点:

  • 空闲时才可发送
  • 帧冲突,则采用指数退让规则,尝试重发

存在这种冲突的主机所在的scope,就是冲突域。而 HUB & repeater 是为了解决物理网络信号衰减,制造的设备,能实现:

  • 扩展网络距离,将衰减信号经过再生。
  • 实现粗同轴电缆以太网和细同轴电缆以太网的互连。

中继器只有两个口,而集线器其实是一个多口的中继器。因为集线器多口其实是连接在一个总线上。

由 HUB & repeater 连接的主机,都在同一个冲突域中。冲突域的危害还是比较大的,假如一个冲突域中设备很多,或者说发送帧的设备很多,那么帧冲突的情况就很常见,这时数据链路层的效率就不会太高。为了解决该问题,就出现了网桥&交换机。

类似 HUB & reperter 的关系,switch 就是多口版的 bridge。

bridge 是一个稍微智能的设备,会根据mac地址自己学习并划分网段(转发表)。即假设AB主机都通过端口1发送过消息给bridge,则A to B的帧不会被转发到其他端口。这样在一定程度上避免了冲突域的问题。

但是 bridge & switch 对广播帧是没有限制能力的(因为广播帧默认是发给所有设备的,所谓广播风暴,也是这个原因)。这时候就出现了router。router是工作在三层的设备,将广播的包限制在了其广播域之内。实际上,除非做特殊配置,否则路由器从不转发广播类型的数据包。

通过路由进行链接的设备,组成了一个网络。而世界上有很多的网络,不同网络之间的链接是通过一个特殊的路由设备—网关来进行的。

上述内容参考的资料:

其他

  • 什么是ICMP

提到ICMP是做测试的时候想验证 libvirt 的 migrate 网络状态。migrate 使用的是 TCP,网络层之上的传输层的协议;而 ping 使用的是 ICMP,使用的是网络层的协议。几个关于 ICMP 的点如下:

  • 跟端口没关系。不像TCP一样使用端口号。
  • 是IP层的协议
  • ICMP本质是错误侦测与回报机制,常用于
    • 路由表维护
    • 侦测主机是否存在

关于ICMP报文的介绍,可以参考:戳这里。其中也包含了对IP,ARP,RARP,IGMP的报文格式介绍。

附录

OSI分层

  • 应用层 Application
  • 表示层 Presentation
  • 会话层 Session
  • 传输层 Transport
  • 网络层 Network
  • 数据链路层 Data Link
  • 物理层Physical